Comme vu dans l'introduction JULIA possède une bibliotèque de package assez grande dont il n'est pas forcément aisé dans faire le tri...
Je vous propose ici la description et utilisation de quelques classiques
En premier lieu deux packages graphiques :
et deux packages plus "statistiques" :
La gestion graphique ne fait pas pertie intégrante de JULIA il faut faire appel à des packages extérieurs et on plusieurs choix possible en voici quelques uns
PyPlot est basé sur une bibiliothèque éprouvée MatPlotLib (en Python). Sa syntaxe est identique à celle de MATLAB
In [1]:
using PyPlot # nécessite d'avoir déjà fait Pkg.add("PyPlot")
In [21]:
x=linspace(0,pi,1000);
plot(x,sin(10*x),"r+",x,cos(10*x),"b^")
title("un titre")
xlabel(" en x ") #ylabel
xlim(-1,pi+1) #ylim
legend(["sinus","cosinus"])
Out[21]:
In [20]:
g=figure()
subplot(2,1,1)
plot(x,sin(x),"g",linewidth=2.0)
title("tracé 1")
subplot(2,1,2)
plot(x,x,"r")
grid(true)
title("tracé 2")
Out[20]:
In [23]:
n=1024
X=randn(n)
Y=randn(n)
scatter(X,Y)
Out[23]:
In [46]:
X=rand(5)
Y=-rand(5)
bar(1:5,X,facecolor="#9999ff", edgecolor="white")
bar(1:5,Y,facecolor="#ff9999", edgecolor="white")
for i=1:5
txt=string(X[i])
text(i+0.1,X[i]+0.01,txt[1:7])
txt=string(Y[i])
text(i+0.1,Y[i]-0.08,txt[1:7])
end
ylim(-1.2,1.2)
Out[46]:
In [49]:
z=rand(20)
pie(z);
In [6]:
contour(rand(50,50))
Out[6]:
In [67]:
surf(rand(50,50))
Out[67]:
In [59]:
X=[x for x=-1:0.2:1, y=-1:0.2:1]
Y=[y for x=-1:0.2:1, y=-1:0.2:1]
quiver(-1:0.2:1,-1:0.2:1,X,Y)
Out[59]:
In [1]:
using Gadfly
In [9]:
plot(sin,0,25)
Out[9]:
In [3]:
plot(x=randn(100), Geom.histogram(bincount=10))
Out[3]:
In [11]:
plot(layer(sin,0,25),layer(cos,0,25))
In [14]:
plot(x=1:10, y=2.^rand(10),
Scale.y_sqrt, Geom.point, Geom.smooth,
Guide.xlabel("X"), Guide.ylabel("Y"), Guide.title("Un titre"))
Out[14]:
In [12]:
plot(
layer(x=[1:2500]/100,y=sin([1:2500]/100),
Geom.line,Geom.point,
Theme(default_color=color("red"))),
layer(x=[1:2500]/100,y=cos([1:2500]/100),
Geom.line,
Theme(default_color=color("blue")))
)
Out[12]:
D'autres packages sont disponible Winston, AsciiPlot, GLVisualize...
In [19]:
using DataFrames
Création d'un DataArray incluant un NA,
In [21]:
myda = @data([NA, 1, 2, 3, 4])
Out[21]:
Pour pouvoir calculer une moyenne il faut régler le problèmes des NA en les enlevant :
In [18]:
dropna(myda) # on enlève les valeurs NA
mean(dropna(myda)) # on fait la moyenne
Out[18]:
ou en les remplaçant par une valeur (ici on choisit une valeur arbitrairement mais il existe des règles de statistiques quant au choix du remplacement du NA) :
In [23]:
myda = @data([NA, 1, 2, 3, 4])
mean(convert(Array,myda, 0))
Out[23]:
Les DataArray peuvent être vus comme des objets à N dimensions surlesquels on peut appliquer les mêmes opérations de base que sur les Array (package Base de JULIA) comme par exemple :
In [24]:
mydamult = @data([NA 0.0; 0.0 1.0])
mydamult * mydamult
Out[24]:
In [25]:
df = DataFrame(A = 1:4, B = ["M", "F", "F", "M"])
Out[25]:
In [27]:
df = DataFrame()
df[:A] = 1:8;
df[:B] = ["M", "F", "F", "M", "F", "M", "M", "F"];
df
Out[27]:
In [28]:
nrows = size(df, 1) # nombre de ligne
ncols = size(df, 2) # nombre de colonne
Out[28]:
In [34]:
head(df)#Voir le début du tableau
Out[34]:
In [35]:
tail(df) #Voir la fin du tableau
Out[35]:
In [36]:
df[1:3, :] #Voir les lignes 1,2,3 du tableau
Out[36]:
Nous avons l'analogie avec summarize du logiciel R :
In [37]:
describe(df)
In [38]:
mean(df[:A])#Moyenne sur la colonne intitulée A (première colonne)
Out[38]:
In [39]:
median(df[:A])
Out[39]:
In [40]:
mean(df[1]) #Moyenne sur la première colonne
Out[40]:
In [44]:
using RDatasets, Gadfly
In [43]:
plot(dataset("datasets", "iris"), x="SepalLength", y="SepalWidth", Geom.point)
Out[43]:
In [45]:
plot(dataset("car", "SLID"), x="Wages", color="Language", Geom.histogram)
Out[45]:
In [ ]: